{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5ec50719",
   "metadata": {},
   "source": [
    "# 导入需要的库\n",
    "\n",
    "#### tf 我们要用到的学习的工具\n",
    "#### dataset是我们的训练和测试用的数据\n",
    "#### np是我们做一些简单数学操作的时候用的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5522c020",
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from sklearn import datasets\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7146c84a",
   "metadata": {},
   "source": [
    "# 导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3f69d5ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = datasets.load_iris().data\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "709f789c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = datasets.load_iris().target\n",
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97e3e555",
   "metadata": {},
   "source": [
    "# 随机打乱数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7bbfc1c4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5. , 3.5, 1.3, 0.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [5.1, 3.5, 1.4, 0.2],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [5.9, 3. , 5.1, 1.8],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [6.6, 3. , 4.4, 1.4]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.seed(12)\n",
    "np.random.shuffle(x)\n",
    "np.random.seed(12)\n",
    "np.random.shuffle(y)\n",
    "x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b6124c2c",
   "metadata": {},
   "source": [
    "# 分出训练数据和测试数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "38537de8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('float64')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c74c9026",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(30,)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train = x[:-30]\n",
    "y_train = y[:-30]\n",
    "x_test = x[-30:]\n",
    "y_test = y[-30:]\n",
    "\n",
    "y_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c17638fc",
   "metadata": {},
   "source": [
    "# 转换数据格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "64474615",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = tf.cast(x_train,tf.float32)\n",
    "x_test = tf.cast(x_test,tf.float32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "01c180fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BatchDataset element_spec=(TensorSpec(shape=(None, 4), dtype=tf.float32, name=None), TensorSpec(shape=(None,), dtype=tf.int32, name=None))>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_db = tf.data.Dataset.from_tensor_slices((x_train,y_train)).batch(32)\n",
    "train_db"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c04527a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BatchDataset element_spec=(TensorSpec(shape=(None, 4), dtype=tf.float32, name=None), TensorSpec(shape=(None,), dtype=tf.int32, name=None))>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_db = tf.data.Dataset.from_tensor_slices((x_test,y_test)).batch(32)\n",
    "test_db"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "84156cb4",
   "metadata": {},
   "source": [
    "我们用线性回归\n",
    "y=ax+b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "c6a3653b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "TensorShape([30, 4])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = tf.Variable(tf.random.truncated_normal([4,3],dtype=tf.float32,seed=4))\n",
    "b = tf.Variable(tf.random.truncated_normal([3],dtype=tf.float32,seed=4))\n",
    "\n",
    "x_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "ed46af04",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tf.Tensor(0.4147786, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.39773825, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.38939598, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.37090328, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.30989543, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.2160244, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.19912359, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.19462547, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.19177434, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.18935463, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.18706642, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1849144, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.18274337, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.18064457, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.17858914, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.17660427, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.17460218, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.17266567, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.17070793, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.16888079, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.16705748, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.16533944, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.16365395, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.16213492, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1606604, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15923078, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15796347, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15673427, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15556285, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15449663, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15349184, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15253714, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15164106, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.15077826, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14996165, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14918695, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14841683, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14770027, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14696251, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14629772, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14559741, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14495768, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1443179, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1436753, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14304757, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14245413, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14187196, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14128138, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14071095, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.14015101, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13955742, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13902812, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13851377, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1379764, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1374179, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13690808, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13639008, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13588196, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13540538, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13486582, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13440084, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13392322, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13342081, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13295916, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13249367, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1320124, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13156798, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13111478, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1306756, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.13022624, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12979652, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1293541, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12892252, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1284992, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1280579, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12766418, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12722161, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12680049, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12643942, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12602076, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12562113, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12520143, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12485014, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12445589, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.124051176, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12368684, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12330539, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12292687, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12256029, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12218455, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12182328, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12145718, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.121110626, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.120789036, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.120420985, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.12008014, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.119717, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11940902, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.119070426, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11875052, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11839398, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.118081056, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11777524, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.117467746, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11716473, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.116820574, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11652938, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11621058, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11593894, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11561792, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11535076, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.115064144, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11476925, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.114483714, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11420805, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1139276, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1136727, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1134133, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11313299, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.112857275, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.112627745, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11234001, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11211952, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11186247, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11161833, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.111390606, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11114815, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.110892735, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11068024, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11045086, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.110233866, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.11001584, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.109798536, shape=(), dtype=float32)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9333333333333333\n",
      "tf.Tensor(0.109577805, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10934636, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10916851, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.108938776, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10876375, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10853698, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10836805, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.108180545, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10798601, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.107774556, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1075896, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10741583, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10724696, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10704881, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.106888466, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10671975, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.106527165, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.106377035, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10621361, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10605236, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10591325, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10572725, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.105575584, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10544168, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10529396, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10510674, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10497531, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10485688, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10469769, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10453527, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10442739, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.104295135, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.104149595, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.104023784, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.103902034, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10376731, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10362419, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10351277, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10338955, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.1032755, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10313959, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.103033304, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.102906965, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.102802075, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10267839, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10256335, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10246674, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.102344595, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.102243945, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.102133796, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10204527, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.101911254, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.101818666, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10170439, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10164693, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.101534195, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10143759, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10132439, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.101207286, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10112267, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10101872, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10095687, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100851744, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100780554, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100676075, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10055273, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10049234, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10040113, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100339286, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.10023003, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100144185, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.100093625, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09997198, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09990357, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09978506, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09974124, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099657096, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099538, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099480644, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099412724, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0993481, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099233836, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09918726, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09911824, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.099009685, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09896459, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098888315, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098821245, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098716855, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0986563, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09860015, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098554514, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098436445, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09837332, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098311394, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098266296, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09815897, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.098107316, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0980431, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.097988695, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09787831, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09784281, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09776024, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09771576, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09767323, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09756742, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.097514234, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.097452216, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09739617, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09734367, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.097269446, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.097175926, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09711951, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09708874, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09701192, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09695257, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.096912354, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0968691, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09682037, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09670225, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.096647635, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09660694, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09653624, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09647684, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09644806, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09639912, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09634732, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09627439, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09618934, shape=(), dtype=float32)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9333333333333333\n",
      "tf.Tensor(0.09612979, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.096071236, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09602762, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09597017, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09593156, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09587816, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09581064, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09575191, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09569482, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09565095, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09561435, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09555628, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.095520616, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09546335, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.095405, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09537438, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09532729, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09525654, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09520423, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09514847, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.095115446, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09507094, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09502082, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09494373, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094901055, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094868265, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09481087, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094760075, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09469777, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09465091, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09461567, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094560824, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09448487, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09446193, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0944119, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09433854, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09429752, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09426446, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09421285, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094139755, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09409687, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0940714, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09405653, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.094002776, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.093941055, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.093906745, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09386958, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09379175, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09375987, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09370367, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09365477, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09362779, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09356972, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.093541384, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0934926, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09345552, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09340725, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09336147, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09331566, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09325479, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.093253426, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09320774, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0931556, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09309531, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09306212, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09300834, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.092957266, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09296444, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09290412, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09285283, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09280756, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09276701, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.092706904, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09270697, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09266127, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09260968, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09256914, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09250659, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09249559, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0924608, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09240132, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09235034, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.092310466, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09231949, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.092246264, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09220126, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09215842, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0921534, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.092107534, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09204381, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09200438, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09196012, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09194084, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09189734, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09185784, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09179856, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091807805, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09174451, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09171842, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091642946, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091662765, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09160527, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09153768, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09154725, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0914948, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09145865, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0913939, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091403775, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09135115, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09130315, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0913027, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09124002, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091211595, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09115297, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09113172, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09108979, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.091041975, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09102922, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09099392, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090937205, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090952635, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0908896, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09084228, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09083638, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09079385, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09072581, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09074665, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090675816, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09063938, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09061739, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09058741, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0905316, shape=(), dtype=float32)\n",
      "0.9333333333333333\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tf.Tensor(0.09055083, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09047679, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09043369, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090402454, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09038018, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09036292, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090321615, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090259574, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09027526, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.090219654, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09016513, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09016015, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09010628, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09008968, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09004342, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09000542, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.09000342, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08995143, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08993996, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08989392, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089851186, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0898435, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08979454, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08978298, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089741856, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089699954, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089679874, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08962585, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089636534, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08957035, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08957318, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089513704, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089473926, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089467525, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08941562, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08941345, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089354314, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08936593, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08930327, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08930823, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08926808, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08921438, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.089207634, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08912637, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08912425, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08910088, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08908582, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08904232, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08902001, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08898039, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088974126, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0889121, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08891305, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08884813, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08884689, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08879885, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08881572, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08877618, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088778436, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088704556, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0887135, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08866045, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08864567, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08859983, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088549994, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0885434, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08848282, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08848107, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08846806, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08840689, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088408746, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08836498, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08835016, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08830291, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08829046, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.0882411, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08823966, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08823028, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08817322, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08817587, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088128716, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08810179, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.088073954, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08806418, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08800134, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08800281, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08795593, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08794139, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08792922, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08788249, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08787071, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08783334, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08786472, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08776091, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08775994, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.087748416, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08771063, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08769648, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08764402, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08764075, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08758985, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.087580875, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08758005, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08752671, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08751107, shape=(), dtype=float32)\n",
      "0.9333333333333333\n",
      "tf.Tensor(0.08747357, shape=(), dtype=float32)\n",
      "0.9333333333333333\n"
     ]
    }
   ],
   "source": [
    "all_batch_correct=0\n",
    "total=0\n",
    "for i in range(500):\n",
    "    for step,(x_train,y_train) in enumerate(train_db):\n",
    "        with tf.GradientTape() as tape:\n",
    "            y = tf.matmul(x_train,a)+b\n",
    "            y = tf.nn.sigmoid(y)\n",
    "            y_ = tf.one_hot(y_train,depth=3)\n",
    "            y_ = tf.cast(y_,tf.float32)\n",
    "            loss = tf.reduce_mean(tf.square(y_-y))\n",
    "        grads = tape.gradient(loss,[a,b])\n",
    "        a.assign_sub(0.1*grads[0])\n",
    "        b.assign_sub(0.1*grads[1])\n",
    "    print(loss)\n",
    "\n",
    "    for x_test,y_test in test_db:\n",
    "        y = tf.matmul(x_test,a)+b\n",
    "        y = tf.nn.sigmoid(y)\n",
    "        pred = tf.cast(pred,dtype=y_test.dtype)\n",
    "        correct = tf.cast(tf.equal(pred,y_test),dtype=tf.int32)\n",
    "        correct = tf.reduce_sum(correct)\n",
    "        all_batch_correct+=int(correct)\n",
    "        total += x_test.shape[0]\n",
    "    \n",
    "    score = all_batch_correct/total\n",
    "    print(score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "637aa4f8",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
